home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / swtools / trubasic / rolldemos / demos / interact / tbmap.tru < prev    next >
Text File  |  1994-08-02  |  2KB  |  74 lines

  1. ! ****************************************************************************
  2. ! file:  tbmap
  3. !
  4. ! function: draws a mesh where each cell represents a colormap entry.
  5. !    (similar to cmap on the Silicon Graphics)
  6. !
  7. ! note: current designed only for 24-bit plane systems with the True BASIC
  8. !    Graphics Library version.  Notes below describe changes needed to
  9. !    run on the Indigo or under X11.
  10. !
  11. ! note: this program is written using singlebuffer mode.
  12. ! to avoid the slight flicker when the image is redrawn, use doublebuffer mode.
  13. !
  14. ! modified for X Windows to address non-negative colors (system colors on
  15. ! the SG) and limit scope since only first 80 or so color cells are loaded
  16. ! at start-up.
  17. !
  18. ! ****************************************************************************
  19.  
  20.  
  21. ! set the title
  22. call tw_wset_title(0,"tbmap")
  23. call tw_wset_size(0,300,300)
  24.  
  25. clear
  26. ask max color maxc
  27. call drawmap
  28. do
  29.    if key input then stop
  30.    if refresh(1)=1 then
  31.     clear
  32.     call drawmap
  33.    end if
  34.    get mouse x,y,state
  35.    if state<>0 then stop
  36. loop
  37. get key k
  38. end
  39.  
  40. ! NOTES FOR SG VERSION
  41. ! for the GL negative color numbers indicate system colors.
  42. ! to support X windows which maps True BASIC colors to X colors the program
  43. ! could just use positive numbers.  It might also want to represent another
  44. ! map with the X colors onto which the True BASIC colors are mapped.
  45.  
  46. ! for the Indigo the colormap size is 256 and the offset for where
  47. ! True BASIC colors begin is 16.
  48. ! for 24-bit plane systems the map size is 1024 and the offset is 256.
  49. ! we assume a 24-bit plane system here.
  50. ! to support the 8-bit plane indigo, you would have to adjust the variable
  51. ! "c" below.  The size of the colormap can be determined using the
  52. ! function def winfo(n) with n=0.
  53.  
  54. ! notice on the actual window that the colors over the max color wrap
  55. ! to repeat the original part of the TB colormap.  These colors are the
  56. ! top 16 colors in the window.
  57. ! NOTES FOR SG VERSION
  58.  
  59. sub drawmap
  60.    !let c=-256    ! SG version
  61.    let c=0
  62.    let xinc=1/10
  63.    !let xinc=1/32  ! SG version
  64.    for i=0 to 1-xinc step xinc
  65.      for j=0 to 1-xinc step xinc
  66.         set color c
  67.         box area j,j+xinc,i,i+xinc  
  68.         set color "grey"   ! for X we can specify most colors by name
  69.         box lines j,j+xinc,i,i+xinc  
  70.         let c=c+1
  71.      next j
  72.    next i
  73. end sub
  74.